#!/usr/bin/env python
# -*- encoding: utf-8 -*-

# 원래 전달하려고 했던 m은 새로운 Exception 클래스의 인스턴스로 감싸진 형태로 예외값으로 전달됨
# 따라서, a는 Exception 클래스의 인스턴스이고, a.args[0] 또는 a[0]이 MessageClass의 인스턴스 임.

class MessageClass:
	def __init__(self, message, dur):
		self.message = message
		self.duration = dur


def f():
	m = MessageClass('my message', 10)
	print id(m)
	raise Exception, m


try:
	f()
except (Exception,), a:
	print "="*40
	print id(a)
	print "="*40
	print a, a.__class__.__name__, id(a)
	print "="*40
	print a.args[0], a.args[0].__class__.__name__, id(a.args[0])
	print "="*40
	print a[0], a[0].__class__.__name__, id(a[0])
	print "="*40
	print a.args[0].duration, a[0].duration
	print "="*40

